import type {
  GetCodeData,
  GetCodePrams,
  PostLoginData,
  PostLoginParams,
  PostLoginPasswordParams,
  PostUploadData,
} from '@/types/common'
import { request } from '@/utils/request'


/**
 * 登录--密码登录
 * @param data 手机号、密码
 * @returns
 */
export const postLoginPasswordAPI = (data: PostLoginPasswordParams) => {
  return request<PostLoginData>('/login/password', 'POST', data)
}

/**
 * 获取手机验证码
 * @param params 手机号、验证码类型
 * @returns
 */
export const getCodeAPI = (params: GetCodePrams) => {
  return request<GetCodeData>('/code', 'GET', params)
} 

/**
 * 登录--手机验证码登录
 * @param data 手机号、验证码
 * @returns
 */
export const postLoginAPI = (data: PostLoginParams) => {
  return request<PostLoginData>('/login', 'POST', data)
}


// uni-app 上传文件注意点：
//  1. 在小程序管理后台添加 uploadFile 合法域名
//  2. 小程序端需要使用 uni.uploadFile() 方法上传

// 传统 FormData 写法不兼容多端 ❌
// export const postUploadAPI = (data: FormData) => {
//   return request('/upload', 'POST', data)
// }
 
// 能兼容多端的上传写法 ✅
export const postUploadAPI = (filePath: string) => {
  // 底层调用的是 uni.uploadFile() 兼容多端
  // 添加后端返回值类型
  return request<PostUploadData>(
    '/upload', // 接口路径
    'UPLOAD', // 上传文件
    {},
    {
      name: 'file', // 后端参数对应的 key
      filePath, // 要上传文件资源的路径
    }
  )
}